package net.goodapp.model;
/**
 * 数据库中字段与对应实体类的属性的映射信息
 * @author zhou.jin-qiao
 *
 */
public class ColumnInfo {
	/**
	 * 列名称
	 */
	private String columnName;
	/**
	 * 来自 java.sql.Types 的 SQL 类型
	 */
	private int sqlType;
	/**
	 * 是否忽略生成相关代码
	 */
	private boolean ignored;
	/*
	 * Java开发语言对应的数据类型
	 */
	private String javaType;
	/**
	 * 对于数值数据，这是最大精度。对于字符数据，这是字符长度。
	 * 对于日期时间数据类型，这是 String 表示形式的字符长度（假定允许的最大小数秒组件的精度）。
	 * 对于二进制数据，这是字节长度。对于 ROWID 数据类型，这是字节长度。对于列大小不适用的数据类型，则返回 Null。
	 */
	private int maxLength;
	/**
	 * 表中的列的索引（从 1 开始）
	 */
	//private int ordinal;
	/**
	 * 生成实体类对应的属性名称
	 */
	private String propertyName;
	/**
	 * 描述列的注释（可为 null）
	 */
	private String remarks;
	/**
	 * 数据源依赖的类型名称，对于 UDT，该类型名称是完全限定的
	 */
	private String typeName;
	//private boolean unique;
	private boolean nullable;
	
	public boolean isNullable() {
		return nullable;
	}
	public void setNullable(boolean nullable) {
		this.nullable = nullable;
	}
	public String getColumnName() {
		return columnName;
	}
	public int getSqlType() {
		return sqlType;
	}
	public String getJavaType() {
		return javaType;
	}
	public int getMaxLength() {
		return maxLength;
	}
	/*public int getOrdinal() {
		return ordinal;
	}*/
	public String getPropertyName() {
		return propertyName;
	}
	public String getRemarks() {
		return remarks;
	}
	public String getTypeName() {
		return typeName;
	}
	/**
	 * 获取是否忽略生成相关代码
	 * @return
	 */
	public boolean isIgnored() {
		return ignored;
	}
	/*public boolean isUnique() {
		return unique;
	}*/
	public void setColumnName(String columName) {
		this.columnName = columName;
	}
	public void setSqlType(int sqlType) {
		this.sqlType = sqlType;
	}
	/**
	 * 设置是否忽略生成相关代码
	 * @return
	 */
	public void setIgnored(boolean ignored) {
		this.ignored = ignored;
	}
	public void setJavaType(String jdbcType) {
		this.javaType = jdbcType;
	}
	public void setMaxLength(int maxLength) {
		this.maxLength = maxLength;
	}
	/*public void setOrdinal(int ordinal) {
		this.ordinal = ordinal;
	}*/
	public void setPropertyName(String propertyName) {
		this.propertyName = propertyName;
	}
	public void setRemarks(String remarks) {
		this.remarks = remarks;
	}
	public void setTypeName(String typeName) {
		this.typeName = typeName;
	}
	/*public void setUnique(boolean unique) {
		this.unique = unique;
	}*/
}
